package pers.xiaojun.boot.file.core.client;

import pers.xiaojun.boot.file.core.enums.FileStorageEnum;

/**
 * 文件客户端工厂类
 *
 * @author xiaojun
 * @since 2025-11-15
 */
public interface FileClientFactory {

    /**
     * 创建文件客户端
     *
     * @param configId     配置Id
     * @param storage      存储类型枚举
     * @param clientConfig 客户端配置
     * @return 文件客户端
     */
    <Config extends FileClientConfig> AbstractFileClient<Config> createFileClient(Long configId, Integer storage, FileClientConfig clientConfig);


    /**
     * 根据文件配置Id获取客户端
     *
     * @param configId 文件配置Id
     * @return 文件客户端
     */
    FileClient getFileClient(Long configId);

}
